1

记录一个mpvue中遇到的问题

遇到问题

//css
 <input type="number" v-model="value" @input="getValue">

//vue 
export default {
 data() {
      return {
        value: ''
      }
    },
 methods:{
     getValue() {
        this.$emit('value', this.value);
      }
 }
}

在getValue中运行emit时输入框的光标抖动。光标闪烁这个问题一般可以用官网推荐的方法v-model.lazy修饰符解决,但是在此情况尝试无效。

解决办法

于是我用想象力,没错是想象力T_T|||。我想光标频繁闪烁是不是value被频繁操作,于是尝试断开emit和v-model的耦合关系,问题竟然真解决了...也是醉啊...

...
getValue() {
 var val = this.value;
 setTimeout(() => {
    this.$emit('value', val);
 }, 0)
},
...

messchow
211 声望7 粉丝

能被js改变的,终将被js改变